1
Управление точностью и предотвращение переполнения
AI018Lesson 3
00:00

В NumPy, Управление точностью представляет собой сознательный выбор разрядности для баланса между эффективностью использования памяти и численной корректностью. В отличие от стандартных целых чисел в Python, которые имеют произвольную точность, NumPy использует типы фиксированного размера на языке С (например, int32_t, uint64_t).

1. Иерархия типов

Типы данных в NumPy определяют объем занимаемой памяти. Хотя np.int_() обеспечивает размер, зависящий от платформы, надежные системы полагаются на фиксированные псевдонимы (Таблица: стр. 34), чтобы обеспечить согласованность на разных аппаратных платформах.

  • Целые числа:int8_t, int16_t, int32_t, int64_t.
  • Беззнаковые:uint8_t до uint64_t.
  • Указатели:intptr_t, uintptr_t.

2. Инструменты анализа

Перед выполнением арифметических операций используйте np.iinfo() и np.finfo() для проверки границ. Например, 1 + np.finfo(np.longdouble).eps определяет машинную эпсилон — порог, при котором дальнейшие сложения больше не изменяют значение.

Переполнение целых чиселЛогика циклического переполненияМакс + 1 — МинЧисла с плавающей запятойЛогика насыщенияПревышение максимума — бесконечность

3. Механизм переполнения

NumPy не выдает ошибок при переполнении; он работает незаметно. При использовании np.power(100, 8, dtype=np.int32) происходит обрезание, в то время как float64 переходит в бесконечность. Используйте np.issubdtype(d, np.floating) чтобы проверить категории перед операциями.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>